package com.y.simple.bean;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.y.simple.entity.UserMain;
import com.y.simple.utils.MD5Util;
import com.y.simple.utils.StringUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@Data
@Schema(name = "LoginBean", description = "用于登录信息传递使用bean")
public class LoginBean {

    /**
     * 用户名
     */
    @Schema(name = "userName", description = "用户名")
    private String userName;

    /**
     * 用户手机号
     */
    @Schema(name = "userPhone", description = "用户手机号")
    private String userPhone;

    /**
     * 用户邮箱
     */
    @Schema(name = "userEmail", description = "用户邮箱")
    private String userEmail;

    /**
     * 用户密码
     */
    @Schema(name = "userPassword", description = "用户密码")
    private String userPassword;

    /**
     * 身份状态
     */
    @Schema(name = "userType", description = "身份状态")
    private String userType;

    /**
     * 生成一个用于查询的 wrapper
     * @return wrapper
     */
    public QueryWrapper<UserMain> loginWrapper() {
        // 初始化
        QueryWrapper<UserMain> wrapper = new QueryWrapper<>();
        // 账号：邮箱、手机号、用户名三选一
        if (StringUtil.hasEmpty(userName)) {
            wrapper.eq("user_name",userName);
        }
        if (StringUtil.hasEmpty(userPhone)) {
            wrapper.eq("user_phone",userPhone);
        }
        if (StringUtil.hasEmpty(userEmail)) {
            wrapper.eq("user_email",userEmail);
        }
        // 密码校验
        if (StringUtil.hasEmpty(userPassword)) {
            wrapper.like("user_password", MD5Util.create(userPassword));
        }
        // 身份类型
        if (StringUtil.hasEmpty(userType)) {
            wrapper.like("user_type",userType);
        }
        // 不显示已删除内容
        wrapper.eq("is_delete","0");
        // 返回
        return wrapper;
    }

}
